package com.itfenghuang.day15;
/*
文件上传
 */
public class A04_文件上传 {
    /*
    1.文件上传的原理 : 先从客户端本地读取到这个文件,然后在通过Socket发送到服务端,
      服务端接收到文件之后,在将该文件写到本地中

    2.实现步骤
       客户端
            1).客户端使用本地字节输入流读取本地要上传的文件FileInputStream
            2).客户端使用网络输出流将文件发送到服务端   Socket  getOutputStream()
            3).客户端接收服务端回送的上传成功的消息   Socket:getInputStream()
            4).释放资源
        服务端
            1).服务端使用网络输入流接收客户端的数据 getInputStream()
            2).服务端使用本地字节输出流将文件写到本地FileOutputStream
            3).服务端回送一个上传成功的消息
    3.文件上传阻塞问题
            使用shutdowOutput()写一个终止程序
    4.上传文件被覆盖的问题
            原因:文件名相同
            解决:保证文件名相同唯一
                文件名当前时间的毫秒值+随机数
    5.服务器可以一直上传文件
            使用死循环
    6.文件上传效率问题
            问题:一次只能上传一个文件
            解决:每次上传都开启一个线程
     */
}
